home *** CD-ROM | disk | FTP | other *** search
/ Cracking 2 / Cracking II..iso / Texty / crackme / KEYGEN.ASM < prev    next >
Encoding:
Assembly Source File  |  1998-05-21  |  5.6 KB  |  204 lines

  1. ;** Created with wIN-TRek **
  2. ;---------------------------
  3.  
  4. .386
  5. .MODEL FLAT,STDCALL
  6. UNICODE = 0
  7. INCLUDE tASM\W32.INC
  8. INCLUDE cRACK\CRACK.ASM
  9. INCLUDE kEYGEN\Info.ASM
  10.  
  11. extrn GetWindowThreadProcessId:PROC
  12. extrn OpenProcess:PROC
  13. extrn TerminateProcess:PROC
  14.  
  15. CM_ABOUT                EQU     100             ;IDz from Resource file
  16. CM_EXIT                 EQU     101
  17. CM_CALC                 EQU     102
  18.  
  19. .DATA
  20. ;---───────════════════════════════════════════════════════════════───────----
  21.  
  22. hInst         DD 0
  23. mainhwnd     DD 0
  24. s1         WNDCLASS    <?>
  25. s2         MSG         <?>
  26. s3           PAINTSTRUCT <?>
  27. szClassName     DB "KEYGEN",0
  28. sziconname     DB "T_ICON",0        ;name of icon in .RC file.
  29.  
  30. IDC_EDIT1       DD 0                ;Edit field handle
  31. IDC_EDIT2       DD 0
  32.  
  33. Edit_cls        DB "EDIT",0
  34. Static_cls      DB "STATIC",0
  35. Nada            DD 0
  36.  
  37. Status_txt1     DB "Status:",0
  38. Status_txt2     DB "cRACKED bY:",0
  39.  
  40. g_hwnd            DD 0
  41. g_message       DD 0
  42. g_wparam        DD 0
  43. g_lparam        DD 0
  44.  
  45. ;The about window -   Keep it , and don't be a lamer!
  46. szaboutstr  DB " [ This cRACK-ME was created with wIN-TRek ] ",0
  47. sztitlestr  DB "cRACK-Me #4 Info",0 ;messagebox
  48.  
  49. Cname   db "filemonClass",0
  50. Wname   db "Win95 File Monitor",0
  51. pID     dd 0
  52.  
  53. .CODE
  54. ;---───────════════════════════════════════════════════════════════───────----
  55.  
  56. start:
  57.     call GetModuleHandle, NULL
  58.     mov    hInst, eax
  59.  
  60.         Call Display_Info_window                     ; ■ That's in Info.ASM ■
  61.  
  62. ; initialize the WndClass structure
  63.     mov    s1.w_style, CS_HREDRAW + CS_VREDRAW + CS_DBLCLKS
  64.     mov    s1.w_lpfnWndProc, offset WndPROC
  65.     mov    s1.w_cbClsExtra, 0
  66.     mov    s1.w_cbWndExtra, 0
  67.     mov    eax, hInst
  68.     mov    s1.w_hInstance, eax
  69.       call LoadIcon, hInst, OFFSET sziconname
  70.     mov    s1.w_hIcon, eax
  71.       call LoadCursor,NULL, IDC_ARROW
  72.     mov    s1.w_hCursor, eax
  73.     mov    s1.w_hbrBackground, COLOR_WINDOW + 2
  74.     mov    s1.w_lpszMenuName, OFFSET szClassName
  75.     mov    s1.w_lpszClassName, OFFSET szClassName
  76.  
  77.     call RegisterClass, OFFSET s1
  78.  
  79.       Call Create_window_Items                       ;  Look Below 
  80.  
  81.     call ShowWindow, mainhwnd,SW_SHOWNORMAL
  82.     call UpdateWindow, mainhwnd
  83.  
  84.       Call    SendMessage , IDC_EDIT1, WM_ENABLE, FALSE ,0
  85.       Call Crack_proc
  86.  
  87. msg_loop:
  88.  
  89.         Call FindWindowA , OFFSET Cname , OFFSET Wname
  90.         cmp eax,0
  91.         jz @Start
  92.  
  93.         Call GetWindowThreadProcessId, eax , OFFSET pID
  94.         Call OpenProcess , PROCESS_TERMINATE , FALSE , pID
  95.         Call TerminateProcess , eax , 0
  96.  
  97. @Start:
  98.     call GetMessage, OFFSET s2, 0,0,0
  99.     cmp    ax, 0
  100.         je      end_loop
  101.     call TranslateMessage, OFFSET s2
  102.     call DispatchMessage, OFFSET s2
  103.     jmp    msg_loop
  104.  
  105. end_loop:
  106.     call ExitProcess, s2.ms_wParam
  107.  
  108. ;---───────════════════════════════════════════════════════════════───────----
  109. ;Create all the items that will be on the Main Form
  110.  
  111. Create_window_Items    PROC
  112.  
  113.     call CreateWindowEx, 0,OFFSET szClassName,OFFSET Crk_Title,   \
  114.                          WS_OVERLAPPEDWINDOW ,                    \
  115.                          288,160,284,137, 0, 0, hInst, 0
  116.     mov    mainhwnd, eax
  117.  
  118.     call CreateWindowEx, WS_EX_CLIENTEDGE, OFFSET Edit_cls,OFFSET Nada, \
  119.                          WS_VISIBLE+WS_CHILD+ES_LEFT+ES_READONLY,       \
  120.                          95,15,150,24, mainhwnd, 0, hInst, 0
  121.     mov    IDC_EDIT1, eax
  122.  
  123.     Call CreateWindowEx, NULL,OFFSET Static_cls, OFFSET Status_txt1, \
  124.                          WS_VISIBLE+WS_CHILD+SS_CENTER,              \
  125.                          35,17,30h,18, mainhwnd, 0 ,hInst,0
  126.  
  127.     Call CreateWindowEx, NULL,OFFSET Static_cls, OFFSET Status_txt2, \
  128.                          WS_VISIBLE+WS_CHILD+SS_CENTER,              \
  129.                          10,52,60h,18, mainhwnd, 0 ,hInst,0
  130.  
  131.     call CreateWindowEx, WS_EX_CLIENTEDGE, OFFSET Edit_cls,OFFSET Nada, \
  132.                          WS_VISIBLE+WS_CHILD+ES_LEFT+ES_READONLY,       \
  133.                          118,50,150,24, mainhwnd, 0, hInst, 0
  134.     mov    IDC_EDIT2, eax
  135.  
  136.     RET
  137. Create_window_Items    ENDP
  138.  
  139. ;---───────════════════════════════════════════════════════════════───────----
  140.     PUBLIC WndPROC
  141. WndPROC proc STDCALL, hwnd:DWORD, wmsg:DWORD, wparam:DWORD, lparam:DWORD
  142.     USES  ebx, edi, esi
  143.     LOCAL    hDC:DWORD
  144.  
  145.     mov eax,hwnd        ;useful to make these static.
  146.     mov g_hwnd,eax
  147.     mov eax,wmsg
  148.     mov g_message,eax
  149.     mov eax,wparam
  150.     mov g_wparam,eax
  151.     mov eax,lparam
  152.     mov g_lparam,eax
  153.  
  154.     xor eax,eax
  155.     mov ax,WORD PTR g_message
  156.     .IF ax==WM_DESTROY
  157.       call    wmdestroy                       ;  Look Below 
  158.     .ELSEIF ax==WM_PAINT
  159.       call    wmpaint                         ;  Look Below 
  160.     .ELSEIF ax==WM_COMMAND
  161.       call    wmcommand                       ;  Look Below 
  162.     .ELSE
  163.       call DefWindowProc, hwnd,wmsg,wparam,lparam
  164.       ret
  165.     .ENDIF
  166.     xor eax,eax
  167.     ret
  168. WndPROC ENDP
  169.  
  170. ;---───────════════════════════════════════════════════════════════───────----
  171.  
  172. wmpaint PROC
  173.     call BeginPaint, hwnd,OFFSET s3
  174.     mov    hDC, eax
  175.  
  176.     call EndPaint, hwnd,OFFSET s3
  177.     ret
  178. wmpaint ENDP
  179.  
  180. wmdestroy PROC
  181.     call ShowWindow, mainhwnd,SW_SHOWMINNOACTIVE
  182.     call PostQuitMessage,0
  183.     ret
  184. wmdestroy ENDP
  185.  
  186. wmcommand PROC
  187.     mov ax,WORD PTR g_lparam
  188.     .IF ax==0
  189.       mov  ax,WORD PTR g_wparam
  190.       .IF ax==CM_EXIT               ;Exit
  191.         call wmdestroy
  192.       .ELSEIF ax==CM_ABOUT          ;About message
  193.        call MessageBox, g_hwnd, OFFSET szaboutstr, OFFSET sztitlestr, MB_OK
  194.           .ELSEIF ax==CM_CALC
  195.            call Crack_proc                       ;   The call to your crack 
  196.       .ENDIF
  197.     .ENDIF
  198.     ret
  199. wmcommand ENDP
  200.  
  201. ;---───────════════════════════════════════════════════════════════───────----
  202. ends
  203. end start
  204.